spb/autoscholar
Public
1import { audit, transition } from "@autoscholar/core";2import { handler, json } from "@/lib/server/api";3import { db } from "@/lib/server/db";4import { requireAdmin } from "@/lib/server/session";56export const runtime = "nodejs";78/** Re-runs the deterministic quality gates on the existing artifacts (e.g. after a gate policy fix). */9export const POST = handler(async (req, { params }) => {10 const sess = await requireAdmin(req, { mutation: true });11 const { runId } = (await params) as { runId: string };12 const run = await db().transaction(async (tx) => {13 const r = await transition(tx, runId, "quality_check", {14 actor: `admin:${sess.userId}`,15 reason: "re-evaluation requested",16 expectFrom: ["quality_failed"],17 });18 await audit(tx, { type: "admin", id: sess.userId, ip: sess.ip }, "quality.reevaluate", {19 type: "run",20 id: runId,21 });22 return r;23 });24 return json({ ok: true, status: run.status });25});26